rabbitmq 消息队列,处于安全的考虑,guest这个默认的用户只能通过http://localhost:15672 来登录,其他的IP无法直接使用这个账号。 这对于服务器上没有安装桌面的情况是无法管理维护的,除非通过在前面添加一层代理向外提供服务,这个又有些麻烦了,这里通过配置文件来实现这个功能。

只要编辑 /etc/rabbitmq/rabbitmq.config 文件,添加以下配置就可以了。

[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["asdf"]}]}
].

现在添加了一个新授权用户asdf,可以通过外网使用这个用户名和密码访问.(记得要先用命令添加这个命令才行, #rabbitmqctl add_user asdf pwd123456)我是通过在管理平台里直接添加的用户和密码的,我的测试环境装有桌面的。
参考文档:http://www.rabbitmq.com/acces...

# rabbitmqctl add_user asdf pwd123456
# rabbitmqctl list_users
Listing users ...
asdf
guest   [administrator]
Setting permissions for user "asdf" in vhost "/" ...
# rabbitmqctl set_permissions -p "/" asdf ".*" ".*" ".*"
# rabbitmqctl list_permissions -p /
Listing permissions in vhost "/" ...
asdf .* .* .*
guest .* .* .*

可以看到添加用户成功了,但不是administrator角色,这里我们也将asdf用户设置为administrator角色.

# rabbitmqctl set_user_tags asdf administrator
Setting tags for user "asdf" to [administrator] ..
# rabbitmqctl list_users
Listing users ...
asdf [administrator]
guest [administrator]

我用rpm包安装的rabbitmq,所以提供默认的配置参考文件(/usr/share/doc/rabbitmq-server-3.5.0/rabbitmq.config.example),如果你使用源码编译的话,可以找到一个默认的配置文件rabbitmq.config.example

$sudo rabbitmqctl set_permissions -p /vhost1 user_admin '.*' '.*' '.*'

该命令使用户user_admin具有/vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源


载昊君
402 声望13 粉丝